error handling : perror, strerror memory allocation : malloc, calloc, realloc, free argument handling : getopt